package org.breathe.thread.pool.common.entity;

import lombok.Data;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;

/**
 * 线程池中主要的配置信息
 * @author: breathe
 * @createTime: 2025-04-09
 */
@Data
public class BreatheDtpMainProperties {
    private static final List<Field> FIELD_NAMES;

    /**
     * 通过反射的方式获取到所有的属性名，然后放到FIELD_NAMES中
     * 可以很好的获取到所有配置的信息，后续添加的话也不用修改原先的代码
     */
    static {
        FIELD_NAMES = Arrays.asList(BreatheDtpMainProperties.class.getDeclaredFields());
    }
    private String dtpName;
    private int corePoolSize;
    private int maxPoolSize;
    private long keepAliveTime;
    private String queueType;
    private int queueCapacity;
    private String rejectType;
    private boolean allowCoreThreadTimeOut;

    /**
     * 返回动态线程池所有的配置信息.
     * @return
     */
    public static List<Field> getMainProperties() {
        return FIELD_NAMES;
    }
}
